A Multi-Point to Multi-Point (MP2MP) Multi-Protocol Label Switching (MPLS) tree is a set of network nodes (e.g., computers, routers, hubs, switches), with one root node, and one or more child nodes connected either directly or indirectly to the root node. Every child node is either directly connected to the root node or to at least one other child node to enable communications with the root node. MPLS Label-Switched Paths (LSPs) are set up to allow messages to be multicast to all nodes of the MP2MP MPLS (or MP2MP LSP) tree. In such a tree, MPLS routers within a network replicate multicast transmissions based on a set of LSPs through the network. Each MPLS router sends multicast transmissions up the tree towards a root node as well as down the tree to nodes downstream from the router. Each MP2MP MPLS tree has one root node and one or more leaf nodes (or leaves), with optional transit nodes in between. MP2MP MPLS trees are utilized in order to allow leaf nodes to communicate bi-directionally with each other, and particularly to allow each leaf node to send multicast communications to all other nodes in the tree with minimal replication of the multicast messages.